// package main

// import (
// 	"crypto/md5"
// 	"fmt"
// 	"os"
// 	"io"
// 	"encoding/hex"
// 	// "bytes"
// 	// "io/ioutil"
// 	// "strconv"
// )

// func main() {

// 	// fmt.Println("hello world")
// 	// file, err := os.OpenFile("./api/dream5.csv", os.O_RDWR, 0777)
// 	// defer file.Close()
// 	// if err != nil {
// 	// 	fmt.Println("file open err ")
// 	// }
// 	// md5 := md5.New()
// 	// io.Copy(md5,file)
// 	// MD5Str := hex.EncodeToString(md5.Sum(nil))
// 	// fmt.Println(MD5Str)

// 	// s := make([]byte, 4 * (1 << 20))
	
// 	// hashList := []string{}
// 	// tempFileNameList := []string{}
// 	// fileHashList := []string{}
	
// 	// index := 0
// 	file, _ := os.Open("file")
// 	s := make([]byte, 4 * (1 << 20))
//     for {
//         nr, err := file.Read(s[:])
// 		if err != nil && err != io.EOF {
//             fmt.Println(err)
//         }
// 		if nr == 0 {
// 			break
// 		}
// 		//to do some things 
// 		//比如计算分片的md5编码
// 		hash := md5.New()
// 		io.Copy(hash, bytes.NewReader(s[0:nr]))
// 		MD5Str := hex.EncodeToString(hash.Sum(nil))
// 		fmt.Println(MD5Str)
// 	}
			
// 	// 	hash := md5.New()
// 	// 	io.Copy(hash, bytes.NewReader(s[0:nr]))
// 	// 	MD5Str := hex.EncodeToString(hash.Sum(nil))
// 	// 	// fmt.Println(MD5Str)
// 	// 	// MD5Str := "sdsds"
// 	// 	hashList = append(hashList, MD5Str)

// 	// 	tempFileName := "./" + "temp.file" + strconv.Itoa(index) + ".temp"
// 	// 	tempFileNameList = append(tempFileNameList, tempFileName)
// 	// 	tempFile, err := os.OpenFile(tempFileName, os.O_RDWR|os.O_CREATE, 0777)
// 	// 	if err != nil {
// 	// 		fmt.Println("file open err ")
// 	// 		return
// 	// 	}
// 	// 	tempFile.Write(s[0:nr])
// 	// 	tempFile.Close()
		
// 	// 	// ioutil.WriteFile(tempFileName, s[0:nr], 0666)
		
// 	// 	// tempFile, err := os.Create(tempFileName)
// 	// 	// defer tempFile.Close()
// 	// 	// if err != nil {
// 	// 	// 	fmt.Println("临时文件创建失败" + err.Error())
// 	// 	// 	os.Exit(0)
// 	// 	// }
// 	// 	// io.Copy(tempFile, bytes.NewReader(s[0:nr]))
// 	// 	//计算临时文件hash
// 	// 	hash1 := md5.New()
// 	// 	tempFile, _ = os.OpenFile(tempFileName, os.O_RDWR|os.O_CREATE, 0777)
// 	// 	defer tempFile.Close()
// 	// 	io.Copy(hash1,tempFile)
// 	// 	MD5Str = hex.EncodeToString(hash1.Sum(nil))
// 	// 	// fmt.Println(MD5Str)
// 	// 	fileHashList = append(fileHashList, MD5Str)
// 	// 	index += 1

// 	// 	}
		

// 	// fmt.Println(hashList)
// 	// fmt.Println(fileHashList)

// 	// // firstSlice := fileList[0]
// 	// // firstMD5 := hashList[0]
// 	// // fmt.Println("分片md5为："  + firstMD5)

// 	// // tempFile, err := os.Create("./tempFile.temp1")
// 	// // // defer tempFile.Close()
// 	// // if err != nil {
// 	// // 	fmt.Println("file creat err")
// 	// // 	return 
// 	// // }
// 	// // ioutil.WriteFile("./tempFile.temp2", firstSlice, 0666)
// 	// // // io.Copy(tempFile, bytes.NewReader(firstSlice))
// 	// // // tempFile.Close()
// 	// // fileHast := md5.New()
// 	// // tempFile, _ := os.Open("./tempFile.temp2")
// 	// // io.Copy(fileHast,tempFile)
	
// 	// // MD5Str := hex.EncodeToString(fileHast.Sum(nil))
// 	// // fmt.Println(MD5Str)
// 	// // tempFile.Close()

		


// }